home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -serious- / misc / cmq060 / source / cmq060move16.s < prev   
Text File  |  1999-07-26  |  2KB  |  76 lines

  1. *************************************
  2. *   CopyMemQuicker060 with Move16   *
  3. *         Install File V1.4         *
  4. *       written by Dirk Busse       *
  5. *            3. Apr. 1999           *
  6. *************************************
  7.  
  8.    MACHINE 68060
  9.  
  10.    INCDIR   include:
  11.  
  12.    include  exec/execbase.i
  13.    include  exec/memory.i
  14.    include  dos/dos.i
  15.    include  LVO.i
  16.  
  17. PatchLen    equ PatchEnd-PatchStart
  18.  
  19. *=========================================================================
  20.  
  21.  
  22.       movea.l  4.w,a6
  23.  
  24.    ;------ Check for 68040 or 68060
  25.  
  26.       btst     #3,AttnFlags+1(a6)
  27.       bne.b    MC040or060          ; No 68040 or 68060 ...
  28. Fail  moveq    #RETURN_FAIL,d0
  29.       rts
  30.  
  31. MC040or060
  32.  
  33.    ;------ Allocate a buffer to store the patches.
  34.  
  35.       move.l   #PatchLen+15,d0
  36.       moveq    #MEMF_PUBLIC,d1
  37.       jsr      _LVOAllocMem(a6)
  38.       move.l   d0,d6
  39.       beq.b    Fail                ; No memory available
  40.  
  41.    ;------ Copy our patches in the buffer.
  42.  
  43.       addi     #15,d6
  44.       andi.b   #%11110000,d6       ; Now we have an address modulo 16
  45.       lea      PatchStart(pc),a0
  46.       movea.l  d6,a1
  47.       move.l   #PatchLen,d0
  48.       jsr      Quickest            ; The new CopyMemQuicker
  49.  
  50.    ;------ Install the patches.
  51.  
  52.       movea.l  a6,a1               ; ExecBase to a1
  53.       lea      (_LVOCopyMem).w,a0  ; funcOffset to a0
  54.       move.l   d6,d0               ; New Address to d0
  55.       jsr      _LVOSetFunction(a6)
  56.  
  57.       movea.l  a6,a1
  58.       lea      (_LVOCopyMemQuick).w,a0
  59.       move.l   d6,d0
  60.       addi.l   #Quickest-PatchStart,d0
  61.       jsr      _LVOSetFunction(a6)
  62.  
  63.       moveq    #RETURN_OK,d0     ; That's all.
  64.       rts
  65.  
  66.       dc.b     "$VER: CMQ060Move16 1.4 (3.4.99)",0
  67.  
  68.   cnop 0,8
  69.  
  70. *=========================================================================
  71.  
  72.    include     CMQ060Move16.Include.s
  73.  
  74. *=========================================================================
  75.  
  76.